home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / The GIMP 2.2.8 / gimp-2.2.8-i586-setup.exe / {app} / share / gimp / 2.0 / scripts / coolmetal-logo.scm < prev    next >
Encoding:
GIMP Script-Fu Script  |  2005-06-30  |  6.2 KB  |  174 lines

  1. ;  COOL-METAL
  2. ;  Create a text effect that looks like metal with a reflection of
  3. ;  the horizon, a reflection of the text in the mirrored ground, and
  4. ;  an interesting dropshadow
  5. ;  This script was inspired by Rob Malda's 'coolmetal.gif' graphic
  6.  
  7. (define (apply-cool-metal-logo-effect img
  8.                       logo-layer
  9.                       size
  10.                       bg-color
  11.                       gradient
  12.                       gradient-reverse)
  13.   (let* ((feather (/ size 5))
  14.      (smear 7.5)
  15.      (period (/ size 3))
  16.      (amplitude (/ size 40))
  17.      (shrink (+ 1 (/ size 30)))
  18.      (depth (/ size 20))
  19.      (width (car (gimp-drawable-width logo-layer)))
  20.      (height (car (gimp-drawable-height logo-layer)))
  21.      (posx (- (car (gimp-drawable-offsets logo-layer))))
  22.      (posy (- (cadr (gimp-drawable-offsets logo-layer))))
  23.      (img-width (+ width (* 0.15 height) 10))
  24.      (img-height (+ (* 1.85 height) 10))
  25.      (bg-layer (car (gimp-layer-new img img-width img-height RGB-IMAGE "Background" 100 NORMAL-MODE)))
  26.      (shadow-layer (car (gimp-layer-new img img-width img-height RGBA-IMAGE "Shadow" 100 NORMAL-MODE)))
  27.      (reflect-layer (car (gimp-layer-new img width height RGBA-IMAGE "Reflection" 100 NORMAL-MODE)))
  28.      (channel 0)
  29.      (fs 0)
  30.      (layer-mask 0))
  31.  
  32.     (gimp-context-push)
  33.  
  34.     (gimp-selection-none img)
  35.     (gimp-image-resize img img-width img-height posx posy)
  36.     (gimp-image-add-layer img bg-layer 1)
  37.     (gimp-image-add-layer img reflect-layer 1)
  38.     (gimp-image-add-layer img shadow-layer 1)
  39.     (gimp-layer-set-preserve-trans logo-layer TRUE)
  40.  
  41.     (gimp-context-set-background bg-color)
  42.     (gimp-edit-fill bg-layer BACKGROUND-FILL)
  43.     (gimp-edit-clear reflect-layer)
  44.     (gimp-context-set-background '(0 0 0))
  45.     (gimp-edit-fill shadow-layer BACKGROUND-FILL)
  46.  
  47.     (gimp-context-set-gradient gradient)
  48.  
  49.     (gimp-edit-blend logo-layer CUSTOM-MODE NORMAL-MODE
  50.              GRADIENT-LINEAR 100 0 REPEAT-NONE gradient-reverse
  51.              FALSE 0 0 TRUE
  52.              0 0 0 (+ height 5))
  53.  
  54.     (gimp-rect-select img 0 (- (/ height 2) feather) img-width (* 2 feather) CHANNEL-OP-REPLACE 0 0)
  55.     (plug-in-gauss-iir 1 img logo-layer smear TRUE TRUE)
  56.     (gimp-selection-none img)
  57.     (plug-in-ripple 1 img logo-layer period amplitude 1 0 1 TRUE FALSE)
  58.     (gimp-layer-translate logo-layer 5 5)
  59.     (gimp-layer-resize logo-layer img-width img-height 5 5)
  60.  
  61.     (gimp-selection-layer-alpha logo-layer)
  62.     (set! channel (car (gimp-selection-save img)))
  63.     (gimp-selection-shrink img shrink)
  64.     (gimp-selection-invert img)
  65.     (plug-in-gauss-rle 1 img channel feather TRUE TRUE)
  66.     (gimp-selection-layer-alpha logo-layer)
  67.     (gimp-selection-invert img)
  68.     (gimp-context-set-background '(0 0 0))
  69.     (gimp-edit-fill channel BACKGROUND-FILL)
  70.     (gimp-selection-none img)
  71.  
  72.     (plug-in-bump-map 1 img logo-layer channel 135 45 depth 0 0 0 0 FALSE FALSE 0)
  73.  
  74.     (gimp-selection-layer-alpha logo-layer)
  75.     (set! fs (car (gimp-selection-float shadow-layer 0 0)))
  76.     (gimp-edit-clear shadow-layer)
  77.     (gimp-drawable-transform-perspective-default fs
  78.                          (+ 5 (* 0.15 height)) (- height (* 0.15 height))
  79.                          (+ 5 width (* 0.15 height)) (- height (* 0.15 height))
  80.                          5 height
  81.                          (+ 5 width) height
  82.                          FALSE FALSE)
  83.     (gimp-floating-sel-anchor fs)
  84.     (plug-in-gauss-rle 1 img shadow-layer smear TRUE TRUE)
  85.  
  86.     (gimp-rect-select img 5 5 width height CHANNEL-OP-REPLACE FALSE 0)
  87.     (gimp-edit-copy logo-layer)
  88.     (set! fs (car (gimp-edit-paste reflect-layer FALSE)))
  89.     (gimp-floating-sel-anchor fs)
  90.     (gimp-drawable-transform-scale-default reflect-layer
  91.                        0 0 width (* 0.85 height)
  92.                        FALSE FALSE)
  93.     (gimp-drawable-transform-flip-simple reflect-layer ORIENTATION-VERTICAL
  94.                      TRUE 0 TRUE)
  95.     (gimp-layer-set-offsets reflect-layer 5 (+ 3 height))
  96.  
  97.     (set! layer-mask (car (gimp-layer-create-mask reflect-layer ADD-WHITE-MASK)))
  98.     (gimp-layer-add-mask reflect-layer layer-mask)
  99.     (gimp-context-set-foreground '(255 255 255))
  100.     (gimp-context-set-background '(0 0 0))
  101.     (gimp-edit-blend layer-mask FG-BG-RGB-MODE NORMAL-MODE
  102.              GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE
  103.              FALSE 0 0 TRUE
  104.              0 (- (/ height 2)) 0 height)
  105.  
  106.     (gimp-image-remove-channel img channel)
  107.  
  108.     (gimp-context-pop)))
  109.  
  110.  
  111. (define (script-fu-cool-metal-logo-alpha img
  112.                      logo-layer
  113.                      size
  114.                      bg-color
  115.                      gradient
  116.                      gradient-reverse)
  117.   (begin
  118.     (gimp-image-undo-group-start img)
  119.     (apply-cool-metal-logo-effect img logo-layer size bg-color
  120.                   gradient gradient-reverse)
  121.     (gimp-image-undo-group-end img)
  122.     (gimp-displays-flush)))
  123.  
  124. (script-fu-register "script-fu-cool-metal-logo-alpha"
  125.             _"Cool _Metal..."
  126.             "Metallic logos with reflections and perspective shadows"
  127.             "Spencer Kimball & Rob Malda"
  128.             "Spencer Kimball & Rob Malda"
  129.             "1997"
  130.             "RGBA"
  131.                     SF-IMAGE       "Image"                0
  132.                     SF-DRAWABLE    "Drawable"             0
  133.             SF-ADJUSTMENT _"Effect size (pixels)" '(100 2 1000 1 10 0 1)
  134.             SF-COLOR      _"Background color"     '(255 255 255)
  135.             SF-GRADIENT   _"Gradient"             "Horizon 1"
  136.             SF-TOGGLE     _"Gradient reverse"     FALSE)
  137.  
  138. (script-fu-menu-register "script-fu-cool-metal-logo-alpha"
  139.              _"<Image>/Script-Fu/Alpha to Logo")
  140.  
  141.  
  142. (define (script-fu-cool-metal-logo text
  143.                    size
  144.                    font
  145.                    bg-color
  146.                    gradient
  147.                    gradient-reverse)
  148.   (let* ((img (car (gimp-image-new 256 256 RGB)))
  149.      (text-layer (car (gimp-text-fontname img -1 0 0 text 0 TRUE
  150.                           size PIXELS font))))
  151.     (gimp-image-undo-disable img)
  152.     (gimp-drawable-set-name text-layer text)
  153.     (apply-cool-metal-logo-effect img text-layer size bg-color
  154.                   gradient gradient-reverse)
  155.     (gimp-image-undo-enable img)
  156.     (gimp-display-new img)))
  157.  
  158. (script-fu-register "script-fu-cool-metal-logo"
  159.             _"Cool _Metal..."
  160.             "Metallic logos with reflections and perspective shadows"
  161.             "Spencer Kimball & Rob Malda"
  162.             "Spencer Kimball & Rob Malda"
  163.             "1997"
  164.             ""
  165.             SF-STRING     _"Text"               "Cool Metal"
  166.             SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
  167.             SF-FONT       _"Font"               "Crillee"
  168.             SF-COLOR      _"Background color"   '(255 255 255)
  169.             SF-GRADIENT   _"Gradient"           "Horizon 1"
  170.             SF-TOGGLE     _"Gradient reverse"   FALSE)
  171.  
  172. (script-fu-menu-register "script-fu-cool-metal-logo"
  173.              _"<Toolbox>/Xtns/Script-Fu/Logos")
  174.